﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//class A
//{
//public:
//  void f() { cout << "A::f()" << endl; }
//  int a;
//};
//
//
//class B : public A
//{
//public:
//	void f(int a) { cout << "B::f()" << endl; }
//	int a;
//};
//
//int main()
//{
//	B b;
//	b.f();
//
//	return 0;
//}

//class A
//{
//public:
//  A() { cout << "A::A()" << endl; }
//  ~A() { cout << "A::~A()" << endl; }
//  int a;
//};
//
//
//class B : public A
//{
//public:
//	B() { cout << "B::B()" << endl; }
//	~B() { cout << "B::~B()" << endl; }
//	int b;
//};
//
//
//void f()
//{
//	B b;
//}

//class A
//{ 
//public: 
//	int a; 
//};
//
//
//class B : protected A 
//{ 
//public: 
//	int b; 
//};
//
//int main()
//{
//	A ac;
//	ac.a;
//
//	return 0;
//}


//template<class T1, class T2>
//
//template<typename T1, T2>
//
//template<typename T1, typename T2>
//
//template<class T1, typename T2>
//
//template<typename T1, typename T2, size_t N>

//template <typename Type>
//
//Type Max(const Type& a, const Type& b)
//
//{
//
//	cout << "This is Max<Type>" << endl;
//
//	return a > b ? a : b;
//
//}
//
//template<>
//
//int Max<int>(const int& a, const int& b)
//
//{
//
//	cout << "This is Max<int>" << endl;
//
//	return a > b ? a : b;
//
//}
//
//template<>
//
//char Max<char>(const char& a, const char& b)
//
//{
//
//	cout << "This is Max<char>" << endl;
//
//	return a > b ? a : b;
//
//}
//
//int Max(const int& a, const int& b)
//
//{
//
//	cout << "This is Max" << endl;
//
//	return a > b ? a : b;
//
//}
//
//int main()
//
//{
//
//	Max(10, 20);
//
//	Max(12.34, 23.45);
//
//	Max('A', 'B');
//
//	Max<int>(20, 30);
//
//	return 0;
//
//}
#include <stdlib.h>
#include <stdio.h>

//template<class T1, class T2>
//
//template<typename T1, T2>
//
//template<typename T1, typename T2>
//
//template<class T1, typename T2>
//
//template<typename T1, typename T2, size_t N>
//
//template<typename T, size_t N = 100, class _A = alloc<T>>
//
//template<size_t N>

//class A{ 
//public: 
//	void test(float a) 
//	{ cout << a; } 
//}; 
//class B :public A{ 
//public: 
//	void test(int b)
//	{ cout << b; } 
//}; 
//
//void main() 
//{ 
//	A *a = new A; 
//	B *b = new B; 
//	a = b; 
//	a->test(1.1); 
//} 